Computational Effect
単に「Effect」とも言う
計算の過程で発生する計算以外の部分
純粋関数言語では、プログラム内に副作用を含まない
しかし、プログラミングする上では副作用は付き物である
その副作用と、プログラムを何らかの方法で接続する必要がある
そのために用いられる
代表的なのはモナドだが、別にそれに限った話ではない
環境を変えるような計算
Haskellで言えば、StateモナドやIOモナドがイメージしやすい
Listは非決定計算なのでこれもEffect
MaybeやEitherも純粋な計算以外に文脈を保持するのでEffect
つまり通常のMonadは全てEffectと言える
たぶんmrsekut.icon
資料
関連論文一覧
例
ファイルの読み書き
ネットワーク、DBへのアクセス
例外, throw/try/catch
async/await
関連
参考
めっちゃ良い